2023/12/231386字符
判断数组是否为对称数组
如:[a, b, c, c, b, a] 、 [a, b, c, d, c, b, a]
拿 for 循环来做一下
var arr = ['a', 'b', 'c', 'd', 'c', 'b', 'a'];
function symmetry (arr) {
var newArr = []; // 新创建一个数组,拿来做对比
for (var i = arr.length - 1; i >= 0; i--) {
newArr.push(arr[i]);
}
for (var i = 0; i <= arr.length - 1; i++) {
if (arr[i] != newArr[i]){
return false;
}
}
return true;
}
symmetry(arr); //--> true
从两端进行比对
function isSymmetric (arr) {
var start = 0, end = arr.length -1;
while (true) {
if (start >= end) {
break; // 两位记录值碰头退出循环
}
if (arr[start] != arr[end]) {
return false; // 判断两个数不一致直接返回 false
}
start++; // 开始的记录值向前走一位
end--; // 最后的记录值向后走一位
}
return true;
}
isSymmetric(arr); //--> true
接着来优化一下
function isSymmetric (arr) {
var start = 0, end = arr.length -1;
while (start < end) {
if (arr[start] != arr[end]) {
return false;
}
start++;
end--;
}
return true;
}
isSymmetric(arr); //--> true